package top.dingwen.io.treasure.api.auth;

import lombok.Data;
import top.dingwen.io.treasure.api.base.constant.ApiConstant;
import top.dingwen.io.treasure.api.base.response.IBaseResponse;

import java.util.Set;

/**
 * 认证用户响应对象
 *
 * @author dingwen
 * @since 2024/12/2 15:12
 */
@SuppressWarnings(ApiConstant.ALL)
@Data
public class AuthUserResponse implements IBaseResponse {

    /**
     * 执行结果
     */
    private Boolean success;

    /**
     * 业务响应码
     */
    private String code;

    /**
     * 业务响应消息
     */
    private String message;

    /**
     * 账号
     * <p>此字段的含义与授权方式保持一致</p>
     */
    private Object account;

    /**
     * 密码密文
     */
    private String password;

    /**
     * 登录端编码
     */
    private String clientCode;

    /**
     * 租户编号
     */
    private Long tenantId;

    /**
     * 数据源键
     */
    private String tenantDataSourceKey;


    /**
     * 用户编号
     */
    private Long loginId;

    /**
     * 序列号
     */
    private String seqNumber;

    /**
     * 授权方式
     */
    private String grantMethod;

    /**
     * 账号是否过期
     */
    private Boolean accountNonExpired;

    /**
     * 账号是否锁定
     */
    private Boolean accountNonLocked;

    /**
     * 账号是否启用
     */
    private Boolean enabled;

    /**
     * 凭证(密码)是否过期
     */
    private Boolean credentialsNonExpired;

    /**
     * 授权信息(功能权限)
     */
    private Set<String> authorities;

    /**
     * 原始授权信息
     */
    private Object rawAuthInfo;
}
